1. Field of the Invention
The present invention relates to computer systems which include a bus. More particularly, the present invention relates to a system and method for automatically assigning unique addresses to agents on a bus in a computer system.
2. Description of the Related Art
Computer systems generally include multiple devices interconnected by one or more various buses. For example, a typical computer system architecture includes a CPU connected to main memory through a host or memory bus. The host or memory bus is connected to an expansion bus. In modem computer architectures, the expansion bus is typically a local bus such as a peripheral component interconnect (PCI) bus. The local bus may then be connected to a more traditional expansion bus such as an AT bus or Industry Standard Architecture (ISA) bus, an Extended ISA (EISA) bus or a microchannel architecture (MCA) bus.
A computer system often includes a bus referred to as a system management bus used for monitoring operations within the system without involvement of the host processor and/or without requiring host processor operability. The system management bus operates in the background and does not use CPU resources. Thus the system management bus operates independently of an operating system that controls the computer system. Therefore, the system management bus operates in parallel with and independently of other operations that are occurring on other buses within the computer system.
A system management bus is typically used to connect devices called "agents". Agents monitor operations of other devices in the system and made data accessible for display to a computer user. Examples of devices which can be connected to a system management bus include monitoring cards for monitoring disk drive functions, control panel consoles for displaying the status of the disk drives within a system, and power supply monitors for monitoring and reporting the status of the power supply in the system, and the like.
Devices connected to a system management bus generally perform control functions so the bus specification does not include high speed data transfer capabilities. Therefore a system management bus is typically implemented using a serial bus protocol. One popular serial bus protocol is an I.sup.2 C serial bus standard protocol developed by Phillips Corporation. In one implementation, the system management bus is implemented at the electrical level and the lowest protocol level using the I.sup.2 C serial bus protocol. An additional protocol may then be run "on top" of the I.sup.2 C bus to facilitate data transfers between the devices.
Each agent connected to a system management bus based on the I.sup.2 C protocol is assigned a dedicated I.sup.2 C address for proper operation of the bus. The conventional method for assigning addresses to agents on the bus involves a selection of hardwired interconnects, dip switches, or jumpers by a designer. The designer specifies dip switch or jumper connections and a computer system user either manually sets the dip switches or jumpers. Alternatively, the computer system user uses configuration software to operate logical switches. The manual setting of switches or manipulation of switches through software control is often tedious and error prone.
What is needed is a system and method for automatically assigning addresses to agents on a serial system management bus in a computer system without user intervention. What is also needed is a system and method for automatically assigning unique addresses to new "hot-pluggable" agents that are subsequently connected to the bus.